/*
 * @Author: 姚潘涛
 * @Date: 2024-06-03 10:40:39
 * @LastEditors: 姚潘涛
 * @LastEditTime: 2024-07-31 16:20:53
 * @Description:
 *
 * Copyright (c) 2024 by pandaman, All Rights Reserved.
 */
#pragma once

#include "xict_common/perception/common/cuda_utils.h"
#include <cstdint>
#include <cuda_runtime.h>
#include <opencv2/opencv.hpp>
namespace xict_common {
    namespace perception {
        namespace detection {
            void CudaPreprocessInit(int max_image_size);
            void CudaPreprocessDestroy();
            void CudaPreprocess(uint8_t* src, int src_width, int src_height,
                                float* dst, int dst_width, int dst_height,
                                cudaStream_t stream);
            void CudaBatchPreprocess(std::vector<cv::Mat>& img_batch,
                                     float* dst, int dst_width, int dst_height,
                                     cudaStream_t stream);
            void InitWarpParam(int src_width, int src_height, int dst_width,
                               int dst_height);
        }   // namespace detection
    }       // namespace perception
}   // namespace xict_common